/**
 * @ClassDescription:
 * 分支结构之switch-case的使用
 * 1.语法格式：
 * switch(表达式){
 *     case 常量值1:
 *         语句块1;
 *         //break;
 *     case 常量值2:
 *         语句块2;
 *         //break;
 *     // ...
 *    [default:
 *         语句块n+1;
 *         break;
 *    ]
 * }
 * 2.执行过程：
 * 第1步：根据switch中表达式的值，依次匹配各个case。
 *       如果表达式的值等于某个case中的常量值，则执行对应case中的执行语句。
 * 第2步：执行完此case的执行语句以后，
 * 情况1：如果遇到break,则执行break并跳出当前的switch-case结构
 * 情况2：如果没有遇到break，则会继续执行当前case之后的其它case中的执行语句。
 *       --->case穿透
 * 直到遇到break关键字或执行完所有的case及default的执行语句，跳出当前的switch-case结构
 * 3.说明：
 * 1）switch中的表达式只能是特定的数据类型，如byte、short、char、int、枚举（jdk5.0）等
 *    String（jdk7.0新增）
 * 2）case后面是跟的常量，使用表达式与这些常量进行相等的判断，不能进行范围判断。
 * 3）开发中，使用switch-case时，通常case匹配的情况是有限的。
 * 4）break：可以使用在switch-case中。一旦执行了break关键字，则跳出当前的switch-case结构。
 * 5）default：可以用来表示不匹配的情况，如果不匹配则执行default中的语句。类似于if-else中的else结构。
 *    default是可选的，而且位置是灵活的。
 * 4.switch-case与if-else之间的转换
 *   1）开发中凡是可以使用switch-case的地方，都可以使用if-else。反之不成立。
 *   2）开发中，如果一个具体问题既可以使用if-else，又可以用switch-case，则优先使用switch-case。
 *      因为switch-case可以简化代码，提高代码的可读性。同时switch-case可以提高代码的可维护性且效率稍高。
 *
 *
 *
 * @JdkVersion: 17
 * @Author: yxy
 * @Created: 2024/1/5 11:04
 */
public class SwitchCaseTest {

    public static void main(String[] args) {
        int i = 5;
        switch (i){
            case 1:
                System.out.println("大米饭");
                break;
            case 2:
                System.out.println("面包");
                break;
            case 3:
                System.out.println("面条");
                break;
            case 4:
                System.out.println("鸡蛋");
                break;
            case 5:
                System.out.println("方便面");
                break;
            case 6:
                System.out.println("海底捞");
                break;
            case 7:
                System.out.println("螃蟹");
                break;
        }
//        错误的例子：编译不通过
//        int num = 12;
//        switch (num){
//            case num <=10:
//                System.out.println("次数小于等于10");
//        }

    }
}
